package com.umpay.dto.memberMgr.req;

import com.umpay.annotation.Pattern;
import com.umpay.dto.memberMgr.CommonParameters;
import org.hibernate.validator.constraints.NotEmpty;

import java.sql.Timestamp;

/**
 * @ClassName: BindBankAccountReq  
 * @Description: 会员绑定银行账户 
 * @author zhangtao  
 * @date Jan 27, 2018
 */
public class BindBankAccountReq extends CommonParameters{
	@NotEmpty(message="userId不能为空")
	@Pattern
	private String userId;  //会员编号
	@NotEmpty(message="支付产品编号不能为空")
	@Pattern
	private String pProductId; //支付产品编号
	@NotEmpty(message="业务产品号不能为空")
	@Pattern
	private String bProductId; //业务产品编号
//	@NotEmpty(message="商户号不能为空")
//	@Pattern
//	private String merId; //商户号
	@NotEmpty(message="银行卡号不能为空")
	private String bankAccount; //3des加密
	//@NotEmpty(message="mobileId不能为空")
	@Pattern
	private String mobileId; //银行端预留手机号

	private String contactsMobile; //联系人手机号
	@NotEmpty(message="bankCardType不能为空")
	@Pattern
	private String bankCardType; //银行卡类型 0-借记卡，1-贷记卡，2-准贷记卡，3-预付卡
	@NotEmpty(message="accountPro不能为空")
	@Pattern
	private String accountPro; // 01：个人  02：企业
	//@NotEmpty(message="identityCode不能为空")
	private String identityCode; //证件号码（银行端预留） 对私时使用
	//@NotEmpty(message="identityType不能为空")
	private String identityType; //证件类型  1 身份证2 护照3 警官证 	4 港澳台同胞回乡证5 户口本 6 文官证8 军官证9 其它  对私时使用
	@NotEmpty(message="certType不能为空")
	@Pattern
	private String certType;//证照类型 1-身份证 2-营业执照号
	@NotEmpty(message="userName不能为空")
	@Pattern
	private String userName; //账户姓名（银行端预留）
	@NotEmpty(message="binBankId不能为空")
	@Pattern
	private String binBankId; //发卡行ID
	@NotEmpty(message="binBankName不能为空")
	@Pattern
	private String binBankName; //发卡行名称
	@NotEmpty(message="lastFourCardId不能为空")
	@Pattern
	private String lastFourCardId; //卡号后四位
	@NotEmpty(message="realNameState不能为空")
	@Pattern
	private String realNameState; //实名验证状态  0.已验证通过 1.未验证通过
	@Pattern
	private String holdVerifyState; //持有性验证状态  0.已验证通过 1.未验证通过
	@Pattern
	private String realNameChnlid; //实名认证渠道编号
	@Pattern
	private String holdVerifyChnlid; //持有性认证渠道编号
	
	private Timestamp perrTime; //解锁时间
	@NotEmpty(message="bankAccountName不能为空")
	private String bankAccountName; //开户个人/单位名称    对公账户的开户单位名称
//	@NotEmpty(message="rpid不能为空")
//	@Pattern
//	private String rpid;
	//@NotEmpty(message="bankProvName不能为空")
	@Pattern
	private String bankProvName; //开户行所在省
	//@NotEmpty(message="bankAreaName不能为空")
	private String bankAreaName; //开户行所在市
	@Pattern
//	@NotEmpty(message="bankBranchName不能为空")
	private String bankBranchName; //开户行支行全称
	@Pattern
	private String inpbCode; //转入账户联行号
	@Pattern
	private String regorigin; //注册渠道
	private String modUser; //修改人
	private String instUser; //录入人
	
	@Pattern
	private String gateId; //银行简码
	
	
//	public String getRpid() {
//		return rpid;
//	}
//	public void setRpid(String rpid) {
//		this.rpid = rpid;
//	}
	
	public String getUserId() {
		return userId;
	}
	public void setUserId(String userId) {
		this.userId = userId;
	}
	public String getpProductId() {
		return pProductId;
	}
	public void setpProductId(String pProductId) {
		this.pProductId = pProductId;
	}
	
	public String getbProductId() {
		return bProductId;
	}
	public void setbProductId(String bProductId) {
		this.bProductId = bProductId;
	}
//	public String getMerId() {
//		return merId;
//	}
//	public void setMerId(String merId) {
//		this.merId = merId;
//	}
	public String getBankAccount() {
		return bankAccount;
	}
	public void setBankAccount(String bankAccount) {
		this.bankAccount = bankAccount;
	}
	public String getMobileId() {
		return mobileId;
	}
	public void setMobileId(String mobileId) {
		this.mobileId = mobileId;
	}
	public String getContactsMobile() {
		return contactsMobile;
	}
	public void setContactsMobile(String contactsMobile) {
		this.contactsMobile = contactsMobile;
	}
	public String getBankCardType() {
		return bankCardType;
	}
	public void setBankCardType(String bankCardType) {
		this.bankCardType = bankCardType;
	}
	public String getAccountPro() {
		return accountPro;
	}
	public void setAccountPro(String accountPro) {
		this.accountPro = accountPro;
	}
	public String getIdentityCode() {
		return identityCode;
	}
	public void setIdentityCode(String identityCode) {
		this.identityCode = identityCode;
	}
	public String getIdentityType() {
		return identityType;
	}
	public void setIdentityType(String identityType) {
		this.identityType = identityType;
	}
	public String getCertType() {
		return certType;
	}
	public void setCertType(String certType) {
		this.certType = certType;
	}
	public String getUserName() {
		return userName;
	}
	public void setUserName(String userName) {
		this.userName = userName;
	}
	public String getBinBankId() {
		return binBankId;
	}
	public void setBinBankId(String binBankId) {
		this.binBankId = binBankId;
	}
	public String getBinBankName() {
		return binBankName;
	}
	public void setBinBankName(String binBankName) {
		this.binBankName = binBankName;
	}
	public String getLastFourCardId() {
		return lastFourCardId;
	}
	public void setLastFourCardId(String lastFourCardId) {
		this.lastFourCardId = lastFourCardId;
	}
	public String getRealNameState() {
		return realNameState;
	}
	public void setRealNameState(String realNameState) {
		this.realNameState = realNameState;
	}
	public String getHoldVerifyState() {
		return holdVerifyState;
	}
	public void setHoldVerifyState(String holdVerifyState) {
		this.holdVerifyState = holdVerifyState;
	}
	public String getRealNameChnlid() {
		return realNameChnlid;
	}
	public void setRealNameChnlid(String realNameChnlid) {
		this.realNameChnlid = realNameChnlid;
	}
	public String getHoldVerifyChnlid() {
		return holdVerifyChnlid;
	}
	public void setHoldVerifyChnlid(String holdVerifyChnlid) {
		this.holdVerifyChnlid = holdVerifyChnlid;
	}
	public Timestamp getPerrTime() {
		return perrTime;
	}
	public void setPerrTime(Timestamp perrTime) {
		this.perrTime = perrTime;
	}
	public String getBankAccountName() {
		return bankAccountName;
	}
	public void setBankAccountName(String bankAccountName) {
		this.bankAccountName = bankAccountName;
	}
	public String getBankProvName() {
		return bankProvName;
	}
	public void setBankProvName(String bankProvName) {
		this.bankProvName = bankProvName;
	}
	public String getBankAreaName() {
		return bankAreaName;
	}
	public void setBankAreaName(String bankAreaName) {
		this.bankAreaName = bankAreaName;
	}
	public String getBankBranchName() {
		return bankBranchName;
	}
	public void setBankBranchName(String bankBranchName) {
		this.bankBranchName = bankBranchName;
	}
	public String getInpbCode() {
		return inpbCode;
	}
	public void setInpbCode(String inpbCode) {
		this.inpbCode = inpbCode;
	}
	public String getRegorigin() {
		return regorigin;
	}
	public void setRegorigin(String regorigin) {
		this.regorigin = regorigin;
	}
	public String getModUser() {
		return modUser;
	}
	public void setModUser(String modUser) {
		this.modUser = modUser;
	}
	public String getInstUser() {
		return instUser;
	}
	public void setInstUser(String instUser) {
		this.instUser = instUser;
	}
	
	
	
	
	public String getGateId() {
		return gateId;
	}
	public void setGateId(String gateId) {
		this.gateId = gateId;
	}
	@Override
	public String toString() {
		StringBuilder builder = new StringBuilder();
		builder.append("BindBankAccountReq [userId=");
		builder.append(userId);
		builder.append(", pProductId=");
		builder.append(pProductId);
		builder.append(", bProductId=");
		builder.append(bProductId);
		builder.append(", bankAccount=");
		builder.append(bankAccount);
		builder.append(", mobileId=");
		builder.append(mobileId);
		builder.append(", contactsMobile=");
		builder.append(contactsMobile);
		builder.append(", bankCardType=");
		builder.append(bankCardType);
		builder.append(", accountPro=");
		builder.append(accountPro);
		builder.append(", identityCode=");
		builder.append(identityCode);
		builder.append(", identityType=");
		builder.append(identityType);
		builder.append(", certType=");
		builder.append(certType);
		builder.append(", userName=");
		builder.append(userName);
		builder.append(", binBankId=");
		builder.append(binBankId);
		builder.append(", binBankName=");
		builder.append(binBankName);
		builder.append(", lastFourCardId=");
		builder.append(lastFourCardId);
		builder.append(", realNameState=");
		builder.append(realNameState);
		builder.append(", holdVerifyState=");
		builder.append(holdVerifyState);
		builder.append(", realNameChnlid=");
		builder.append(realNameChnlid);
		builder.append(", holdVerifyChnlid=");
		builder.append(holdVerifyChnlid);
		builder.append(", perrTime=");
		builder.append(perrTime);
		builder.append(", bankAccountName=");
		builder.append(bankAccountName);
		builder.append(", bankProvName=");
		builder.append(bankProvName);
		builder.append(", bankAreaName=");
		builder.append(bankAreaName);
		builder.append(", bankBranchName=");
		builder.append(bankBranchName);
		builder.append(", inpbCode=");
		builder.append(inpbCode);
		builder.append(", regorigin=");
		builder.append(regorigin);
		builder.append(", modUser=");
		builder.append(modUser);
		builder.append(", instUser=");
		builder.append(instUser);
		builder.append(", gateId=");
		builder.append(gateId);
		builder.append("]");
		return builder.toString();
	}

}
